Tratando de entender la conexión entre la notación "..." en React y GraphQL. Son ellos
1) ¿Usando la misma sintaxis general de Javascript? Si es así, ¿qué significa? Ya que mi comprensión era específica de React. (Pensé que significaba pasar las propiedades heredadas de los padres a un hijo).
2) Sintaxis no relacionada que resulta ser la misma en React y GraphQL.
Lo vi usado en GraphQL en este ejemplo del tutorial de ApolloClient
tutorial: const PokemonQuery = gql` query PokemonQuery($id: ID!) { Pokemon(id: $id) { ... PokemonCardPokemon } } ${PokemonCard.fragments.pokemon}En este ejemplo, PokemonCardPokemon es un fragmento de GraphQL. El tutorial dice: "Tenga en cuenta que seleccionamos el fragmento en la consulta usando la sintaxis ... y que además incluimos el fragmento después de la consulta con ${PokemonCard.fragments.pokemon}".
#2
JavaScript/React y GraphQL utilizan cada uno el operador ... para sus propios fines sin saber cómo lo utiliza el otro.
En JavaScript, ... se usa con matrices y objetos similares a matrices para recopilar o distribuir sus valores.
Ejemplo, difundir los valores de una matriz para que se pasen como argumentos separados.
var list = [ 5, 3, 10 ]; console.log(Math.min(...list)); // 3 // shorter and simpler than... console.log(Math.min.apply(Math, list)); // 3 // and means the same as... console.log(Math.min(5, 3, 10)); // 3 En GraphQL, ... se usa para aplicar Fragmentos o conjuntos de campos con nombre que se pueden reutilizar a lo largo de la consulta.
{ leftComparison: hero(episode: EMPIRE) { ...comparisonFields } rightComparison: hero(episode: JEDI) { ...comparisonFields } } fragment comparisonFields on Character { name appearsIn friends { name } }Puede ver cómo la consulta anterior sería bastante repetitiva si los campos se repitieran. El concepto de fragmentos se usa con frecuencia para dividir requisitos de datos de aplicaciones complicados en fragmentos más pequeños, especialmente cuando necesita combinar muchos componentes de interfaz de usuario con diferentes fragmentos en una obtención de datos inicial.